const promise1 = new Promise((resolve, reject) => reject());
// then 方法的作用是为Promise实例添加状态改变时的回调函数
// 它的返回值是一个新的Promise实例，因此可以采用链式调用的方法

// const promiseReturn = new Promise((resolve, reject) => {
//   setTimeout(() => {
//     resolve(3)
//   }, 2000)
// });

const x = {
  then: function (resolve) {
    console.log('then对象')
    resolve(2)
    // reject(2)
    // return 2
  }
}
const promise2 = promise1.then( // promise2是一个新的Promise实例
  null,
  function () { //  返回值的不同类型
    // 一个值 1234
    // return 123 
    // 一个指向promise2的指针
    // return promise2
    // 一个promise
    // return promiseReturn
    // 一个具有then方法的对象
    return x
  }
)

let p3 = promise2.then(
  (rsp) => { console.log('promise2 已完成' + rsp)}, // 成功的回调
  (err) => console.log('promise2 已拒绝' + err) // 失败的回调
)

console.log(p3)

